# java completion


comp_include _filedir _get_cword _java


_java()
{
    local cur prev i

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}

    for ((i=1; i < $COMP_CWORD; i++)); do
        case ${COMP_WORDS[$i]} in
            -cp|-classpath)
            ((i++)) # skip the classpath string.
            ;;
            -*)
            # this is an option, not a class/jarfile name.
            ;;
            *)
            # once we've seen a class, just do filename completion
            _filedir
            return 0
            ;;
        esac
    done

    case $prev in
        -@(cp|classpath))
            _java_path
            return 0
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        # relevant options completion
        COMPREPLY=( $( compgen -W '-client -hotspot -server -classic \
                -cp -classpath -D -verbose -verbose:class \
                -verbose:gc -version:jni -version \
                -showversion -? -help -X -jar \
                -ea -enableassertions -da -disableassertions \
                -esa -enablesystemassertions \
                -dsa -disablesystemassertions ' -- $cur ) )
    else
        if [[ "$prev" == -jar ]]; then
            # jar file completion
            _filedir jar
        else
            # classes completion
            _java_classes
        fi
    fi
} # _java()


